#pragma once
#include <memory>
#include <typeindex>
#include <typeinfo>

template <typename T>
using GSPtr = std::shared_ptr<T>;

template<typename T>
using GUPtr = std::unique_ptr<T>;

template<typename T>
using GWPtr = std::weak_ptr<T>;

template<typename T>
using GUSPtr = T*;
